package com.rickpan.dto.response;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;

/**
 * 图片生成响应DTO
 */
public class ImageGenerationResponse {

    private List<ImageData> images;
    private TimingData timings;
    private Long seed;

    @JsonProperty("shared_id")
    private String sharedId;

    private List<ImageData> data;
    private Long created;

    // 内部类：图片数据
    public static class ImageData {
        private String url;

        public ImageData() {}

        public ImageData(String url) {
            this.url = url;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        @Override
        public String toString() {
            return "ImageData{url='" + url + "'}";
        }
    }

    // 内部类：时间数据
    public static class TimingData {
        private Double inference;

        public TimingData() {}

        public TimingData(Double inference) {
            this.inference = inference;
        }

        public Double getInference() {
            return inference;
        }

        public void setInference(Double inference) {
            this.inference = inference;
        }

        @Override
        public String toString() {
            return "TimingData{inference=" + inference + "}";
        }
    }

    // 构造函数
    public ImageGenerationResponse() {}

    // Getter 和 Setter 方法
    public List<ImageData> getImages() {
        return images;
    }

    public void setImages(List<ImageData> images) {
        this.images = images;
    }

    public TimingData getTimings() {
        return timings;
    }

    public void setTimings(TimingData timings) {
        this.timings = timings;
    }

    public Long getSeed() {
        return seed;
    }

    public void setSeed(Long seed) {
        this.seed = seed;
    }

    public String getSharedId() {
        return sharedId;
    }

    public void setSharedId(String sharedId) {
        this.sharedId = sharedId;
    }

    public List<ImageData> getData() {
        return data;
    }

    public void setData(List<ImageData> data) {
        this.data = data;
    }

    public Long getCreated() {
        return created;
    }

    public void setCreated(Long created) {
        this.created = created;
    }

    @Override
    public String toString() {
        return "ImageGenerationResponse{" +
                "images=" + images +
                ", timings=" + timings +
                ", seed=" + seed +
                ", sharedId='" + sharedId + '\'' +
                ", data=" + data +
                ", created=" + created +
                '}';
    }
}
